<template>
  <div>
    <div class="wrap">
      <div class="title">推荐歌单</div>

      <van-grid :gutter="5" :border="false" :column-num="3">
        <van-grid-item v-for="item in recList" :key="item.id">
          <van-image :src="item.picUrl" />
          <div class="song_name">{{ item.name }}</div>
        </van-grid-item>
      </van-grid>
    </div>

    <div class="wrap">
      <div class="title">最新音乐</div>
      <music-cell
        v-for="item in musicList"
        :key="item.id"
        :title="item.name"
        :label="`${item.song.artists[0].name} - ${item.name}`"
        :id="item.id"
      />
    </div>
  </div>
</template>

<script>
// 导入封装好的接口
import { recommondAPI, newMusicAPI } from '@/api/home'
export default {
  name: 'MyHome',
  data () {
    return {
      recList: [],
      musicList: []
    }
  },
  async created () {
    // 发请求获取推荐歌单
    const res = await recommondAPI({
      limit: 6
    })

    this.recList = res.result

    // 发请求获取最新音乐
    const res2 = await newMusicAPI()
    this.musicList = res2.result
  }
}
</script>

<!-- 
  scoped限制了，这里写样式只能作用于当前组件
  具体点：就是当前组件写过的标签能作用上，没写的标签作用不上
    子组件内部的标签作用不上
  所以如果希望某个样式能作用到子组件的内部
  就要用深度作用选择器：  ::v-deep，也可以用 >>> 或 /deep/
    有些人也把它叫样式穿透
    ::v-deep 选择器 {
      
    }
 -->
<style scoped>
/* 标题 */
.title {
  padding: 10px 15px;
  margin: 0 0 15px 0;
  background-color: #eee;
  color: #333;
  font-size: 15px;
}
/* 推荐歌单 - 歌名 */
.song_name {
  font-size: 16px;
  padding: 0 5px;
  margin-bottom: 10px;
  word-break: break-all;
  text-overflow: ellipsis;
  display: -webkit-box; /** 对象作为伸缩盒子模型显示 **/
  -webkit-box-orient: vertical; /** 设置或检索伸缩盒对象的子元素的排列方式 **/
  -webkit-line-clamp: 2; /** 显示的行数 **/
  overflow: hidden; /** 隐藏超出的内容 **/
}

::v-deep .van-grid-item__content {
  padding: 0 !important;
}
</style>
